package carregarcasosdeteste;

import entidadesparaguardardadosteste.CasoDeTeste;
import entidadesparaguardardadosteste.SuiteDeTestes;
import gui.ClasseEMetodos;
import gui.DeclaracaoDeMetodo;
import gui.FachadaManipulacaoClassesDeUmProjeto;
import interfaceusuario.TelaDefinaEntradasESaidasDoMetodo;

import java.util.LinkedList;

public class TesteCriaTelaCriacaoDaSuiteAPartirDeCasosJaProntos 
{
	public static void main(String args[])
	{
		FachadaManipulacaoClassesDeUmProjeto fachada = FachadaManipulacaoClassesDeUmProjeto.getInstance();
		LinkedList<ClasseEMetodos> classesEMetodos = 
				fachada.pegarTodasAsClassesDoProjeto("C:/Users/joao/Documents/eclipse new projets/ProjetoFormatacaoBugada");
		
		for(int i = 0; i < classesEMetodos.size(); i++)
		{
			LinkedList<DeclaracaoDeMetodo> declaracoes = classesEMetodos.get(i).getDeclaracaoDosMetodos();
			for(int j = 0; j < declaracoes.size(); j++)
			{
				System.out.println(declaracoes.get(j).getCabecalhoDoMetodo());
			}
		}
		
		DeclaracaoDeMetodo declaracaoDeMetodo = fachada.getAssociaClassesEMetodosANomes().pegarDeclaracaoDeMetodoDeNome("int somar(int x, int y)", "p.ClasseFormBugada" );
		
		CasoDeTeste casoDeTeste = new CasoDeTeste();
		casoDeTeste.setMetodo(declaracaoDeMetodo);
		LinkedList<CasoDeTeste> casosDeTesteSendoCriados = new LinkedList<CasoDeTeste>();
		casosDeTesteSendoCriados.add(casoDeTeste);
		
		TelaDefinaEntradasESaidasDoMetodo tela = new TelaDefinaEntradasESaidasDoMetodo(casosDeTesteSendoCriados);
		tela.desenharTela();
		while(casoDeTeste.oCasoDeTesteEstahCompleto() == false)
		{
			
		}
		
		CasoDeTeste casoDeTeste2 = tela.getCasoDeTeste();
		casoDeTeste2.setEnderecoDoProjetoDaClasseATestar("C:/Users/Mina/Desktop/eclipse-SDK-3.7.1-win32/New folder (2)/ProjetoFormatacaoBugada");
		System.out.println("caso de teste modificado obtido com sucesso");
		casoDeTeste.setNomeClasseAssociadaAoCasoDeTeste("ClasseFormBugada");
		LinkedList<CasoDeTeste> casosDeTeste = new LinkedList<CasoDeTeste>();
		casosDeTeste.add(casoDeTeste2);
		casosDeTeste.add(casoDeTeste2);
		casosDeTeste.add(casoDeTeste2);
		casosDeTeste.add(casoDeTeste2);
		
		SuiteDeTestes suite = new SuiteDeTestes();
		suite.setCasosDeTesteDaSuite(casosDeTeste);
		suite.setNomeSuiteDeTestes("teste1");
		CriaTelaCriacaoDaSuiteDeTestesAPartirDeCasosJaProntos criadorTelaSuite =
				new CriaTelaCriacaoDaSuiteDeTestesAPartirDeCasosJaProntos(suite);
		criadorTelaSuite.criarTelaCriacaoDaSuiteDeTestes();
	}

}
